package main

import (
	"context" // 上下文 ----- goroutine(go程)之间用来数据传递的API包
	"fmt"
	"google.golang.org/grpc"
	"net"
	"protobuf/pb" //probobuf目录下pb package
)

/*
手动下载了text，net等包，放到$GOPATH路径
升级了golang版本
*/

// Children 定义类
type Children struct {
}

// SayHello 按接口绑定类方法
func (arg *Children) SayHello(ctx context.Context, t *pb.Teacher) (*pb.Teacher, error) {
	t.Name += " is talking"
	return t, nil
}

func main() {
	//初始化一个grpc对象
	grpcServer := grpc.NewServer()

	//2. 注册服务
	pb.RegisterSayNameServer(grpcServer, new(Children))

	//3. 设置监听
	listener, err := net.Listen("tcp", "127.0.0.1:8080")
	if err != nil {
		fmt.Println("Listen err:", err)
		return
	}
	defer listener.Close()

	//4. 启动服务
	grpcServer.Serve(listener)
}
